package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JList;
import javax.swing.table.DefaultTableModel;


import modelo.Ingrediente;
import modelo.Producto;
import modelo.ProductoDAO;
import modelo.Venta;
import modelo.VentaDAO;
import vistas.IngredientesTableModel;
import vistas.JFVenta;
import vistas.ListaVentaProductoModelTable;

public class ControladorJFVenta implements ActionListener{
	private JFVenta VentanaVenta;
	public Venta venta;
	ListaVentaProductoModelTable modelo;
	List<Producto> ListaProductos;
	
	public ControladorJFVenta(){
		super();
		VentanaVenta = new JFVenta();
		venta = new Venta();
		VentanaVenta.setVisible(true);
		VentanaVenta.setLocationRelativeTo(null);
		VentanaVenta.addListener(this);
		cargarComboProducto();
		ListaProductos = new ArrayList<Producto>();
	
	}
	

	@Override
	public void actionPerformed(ActionEvent e) {
		VentaDAO ventaDAO= new VentaDAO();
		
		if(e.getActionCommand().equals("Guardar"))
		{
				String vacio= VentanaVenta.getJTCodigoV().getText();
   				if(vacio.equals(""))
   				{
   					this.VentanaVenta.mostrarMensaje("Debe ingresar el codigo de la venta");
   				}
   				else
   					{
   					this.venta.setCodVenta(VentanaVenta.getJTCodigoV().getText());
   					this.venta.setCiCliente(VentanaVenta.getJTciCliente().getText());
   					this.venta.setNombreCliente(VentanaVenta.getJTnombreCliente().getText());
   					//this.venta.setTotalVenta(Integer.parseInt(VentanaVenta.getJTTotal().getText()));
				
   					ventaDAO.Insertar(venta);	
			
   					this.VentanaVenta.mostrarMensaje("Venta registrada con Exito");
   					this.VentanaVenta.limpiar();
   					}
			 }
			
		if(e.getActionCommand().equals("Cancelar"))
		{
			this.VentanaVenta.limpiar();
			VentanaVenta.getJTCodigoV().enable(true);
		}
		
		if(e.getActionCommand().equals("Agregar"))
		{
			String vacio= VentanaVenta.getJTCantidad().getText();
			if(vacio.equals(""))
			{
				this.VentanaVenta.mostrarMensaje("Debe ingresar la cantidad del producto");
			}
			else
				{
					String nombre= VentanaVenta.getJCPedido().getSelectedItem().toString();
					String cant=VentanaVenta.getJTCantidad().getText();
					String codigo= ventaDAO.BuscarCodigoProducto(nombre);
					String precio= ventaDAO.BuscarPrecio(nombre);

					CargarTablaProducto(nombre,cant,codigo,precio);
					//this.VentanaVenta.setJTCantidad(ventaDAO.SumarTotal(nombre));
					
				}	
		}
	}

private void cargarComboProducto(){
			
			ProductoDAO productoDAO = new ProductoDAO();		
			List<String> produc = productoDAO.consultarProduc();
			this.VentanaVenta.setcargarComboProducto(produc);
	    }
	
	
public void CargarTablaProducto(String nombre, String cant,String codigo, String precio){
	
	
	modelo= new ListaVentaProductoModelTable();
	VentanaVenta.getJTproductoventa().setModel(modelo);
	
	
	Producto miproducto = new Producto(codigo,nombre,cant,precio);
	ListaProductos.add(miproducto);
	
	
	ListaVentaProductoModelTable tm=new ListaVentaProductoModelTable(ListaProductos);
	this.VentanaVenta.setproductoscomprados(tm);
	}

}
